
import axios from "axios";
import { ElMessage } from "element-plus";

// axios实例配置
const request = axios.create({
    baseURL: 'http://localhost:8080',
    timeout: 30000
});

// 请求拦截器
request.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json';
    const token = localStorage.getItem('token');
    if (token) {
        config.headers.Authorization = `Bearer ${token}`;
    }
    return config;
});



// 响应拦截器
request.interceptors.response.use(
    response => {
        let res = response.data;

        if (typeof res === 'string') {
        res = res ? JSON.parse(res) : res
    }
        return res

        if (res.code === 200) {
            return res.data;
        } else {
            ElMessage.error(res.message || '请求失败');
            return Promise.reject(res);
        }
    },
    error => {
        if (error.response) {
            switch (error.response.status) {
                case 401:
                    ElMessage.error('登录过期');
                    router.push('/login');
                    break;
                case 404:
                    ElMessage.error('接口不存在');
                    break;
                default:
                    ElMessage.error(`服务器错误: ${error.response.status}`);
            }
        } else if (error.request) {
            ElMessage.error('网络异常，请检查连接');
        } else {
            ElMessage.error('请求配置错误');
        }
        return Promise.reject(error);
    }
);



export default request;























// import axios from "axios";
// import {ELMessage} from "element-plus"
//
// const request = axios.create({
//     baseURL: 'http://localhost:8080',
//     timeout: 30000
//
// })
//
// //request拦截器
// //可以自请求发送前对请求做一些处理I
// request.interceptors.request.use(config =>{
//     config.headers['Content-Type'] ='application/json;charset=utf-8';
//     return config
// },error => {
//     return Promise.reject(error)
// });
//
// //response 拦截器
// //可以在接口响应后统一处理结果
// request.interceptors.response.use(response => {
//     let res = response.data;
//
//     if (typeof res === 'string') {
//         res = res ? JSON.parse(res) : res
//     }
//         return res
// },
//         error => {
//         if (error.response.status === 404) {
//             ELMessage.error('未找到请求接口')
//         } else if (error.response.status === 500) {
//             ELMessage.error('系统异常，请查看后端控制台报错')
//         } else {
//             console.error(error.message)
//
//         }
//         return Promise.reject(error)
//     }
// })
//
// export default request